package com.bangdream.michelia.contract;

import com.bangdream.michelia.entity.CertBean;
import com.bangdream.michelia.entity.CommentBean;
import com.bangdream.michelia.entity.FinishedStateBean;
import com.bangdream.michelia.entity.LearningBean;
import com.bangdream.michelia.entity.LearningStateBean;
import com.bangdream.michelia.entity.courses.CourseInfoBean;
import com.bangdream.michelia.entity.courses.CoursesBean;
import com.bangdream.michelia.entity.CoursesTypeBean;
import com.bangdream.michelia.entity.courses.VideoMsgBean;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;

/**
 * Created by Mr.Wang on 2018/3/30.
 * 909732184@qq.com
 * 课程模块
 */

public class CoursesContract {
    public interface ICoursesView {
        //设置课程列表
        void setCoursestList(boolean isSuccess, int page,CoursesType type, List<CoursesBean> data, String stDescribe);
        //设置课程详情
        void setCoursesDetails(boolean isSuccess, CoursesBean data, String stDescribe);
        //设置课程类型列表
        void setCoursesTypeList(boolean isSuccess, List<CoursesTypeBean> data, String stDescribe);
        //设置课程评价列表
        void setCommentList(boolean isSuccess, int page, List<CommentBean> data, String stDescribe);
        //评论
        void actionComment(boolean isSuccess, String stDescribe);
    }

    public interface ICoursesInfo{
        //获取课程信息
        void setCourseInfo(boolean isSuccess, CourseInfoBean bean);

        void setVideo(VideoMsgBean url);
    }

    public interface ICourseLearning{
        void setLearningList(boolean isSuccess, List<LearningBean> bean);
    }

    public interface IMyCertList{
        void setCertList(boolean isSuccess,int page, List<CertBean> beans);
    }
    public interface ILearningState{
        void setLearningState(boolean isSuccess,LearningStateBean bean);
    }


    public interface ICoursesModel {
        Observable getCoursesList(Map<Object,Object> paramsMap);
        Observable getTaskCoursesList(Map<Object,Object> paramsMap);
        Observable getCourseInfo(Map<Object,Object> paramsMap);
        Observable getTeacherCoursesList(Map<Object,Object> paramsMap);
        Observable getCoursesDetails(String id);
        Observable getCoursesTypeList();
        Observable getCommentList(Map<Object,Object> paramsMap);
        Observable actionComment(Map<Object,Object> paramsMap);
        Observable getVideoMsg(String id);

        Observable getLearning(Map<Object,Object> paramsMap);

        Observable getCertList(Map<Object,Object> map);

        Observable getLearningstate();
    }
    //推荐课程 普通课程
    public enum CoursesType{
        Recommend,Ordinary;
    }
}
